#ifndef UNITTEST_H
#define UNITTEST_H

#include <iostream>

using namespace std;

namespace Lyt
{
	namespace UnitTest
	{
#define TESTCASE(NAME)\
		class TESTCASE_RUNNER_##NAME\
		{\
		private:\
			void Run();\
		public:\
			TESTCASE_RUNNER_##NAME()\
			{\
				cout<<"test "<<#NAME<<"..."<<endl;\
				Run();\
			}\
		}TESTCASE_RUNNER_##NAME##INSTANCE;\
		void TESTCASE_RUNNER_##NAME::Run()

#define EXPECT_TRUE(CONDITION, DESCRIPTION)\
		do {if (!(CONDITION)) cout<<"\tError: "<<DESCRIPTION<<endl;}while(0);
	}
}

#endif